package com.qnbc.mystery.pojo.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qnbc.mystery.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;


/**
 * 【商品详情】对象 product
 *
 * @author guzj
 * @date 2023-12-27
 */

@Getter
@Setter
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@TableName("foods_product")
@ApiModel(value = "商品对象", description = "商品对象")
public class FoodsProduct implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */

    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    @Excel(name = "商品名称")
    private String name;

    /**
     * 商品价格
     */
    @ApiModelProperty(value = "商品价格")
    @Excel(name = "商品价格")
    private BigDecimal price;
    /**
     * 商品价格
     */
    @TableField(exist = false)
    private BigDecimal discountPrice;
    /**
     * 商品价格
     */
    @Excel(name = "商品价格")
    private BigDecimal discountNum;

    /**
     * 库存
     */
    @Excel(name = "库存")
    private Long stock;

    /**
     * 商品图片
     */
    @Excel(name = "商品图片")
    private String propic;

    /**
     * 是否热门推荐商品
     */
    @Excel(name = "是否热门推荐商品")
    private Integer ishot;

    /**
     * 是否轮播图片商品
     */
    @Excel(name = "是否轮播图片商品")
    private Integer isswiper;

    /**
     * 商品轮播图片
     */
    @Excel(name = "商品轮播图片")
    private String swiperpic;

    /**
     * 轮播排序
     */
    @Excel(name = "轮播排序")
    private Long swipersort;

    /**
     * 商品类别编号
     */
    @ApiModelProperty("分类 id")
    @Excel(name = "商品类别编号")
    private String typeid;

    /**
     * 设置热卖日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "设置热卖日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date hotdatetime;

    /**
     * 商品介绍图片
     */
    @Excel(name = "商品介绍图片")
    private String productintroimgs;

    /**
     * 商品规格参数图片
     */
    @Excel(name = "商品规格参数图片")
    private String productparaimgs;

    /**
     * 商品描述
     */
    @Excel(name = "商品描述")
    private String description;

    /**
     * 商品状态
     */
    private String proStatus;

    /**
     * 商品运费模板id
     */
    private String fightTemplateId;

    /**
     * 商品运费模板名称
     */
    private String fightTemplateName;
    /**
     * 1 不包邮 2 包邮
     */
    private int baoyou;

    /**
     * 重量
     */
    private Double proWeight;

    @ApiModelProperty("商品轮播图片")
    @TableField(select = false)
    private List<ProductSwiperImage> productSwiperImageList;

    @TableField(select = false)
    private List<Map<String, String>> sizeList;

    //商品类别
    @TableField(select = false)
    private Smalltype type;

    //收藏
    @TableField(select = false)
    private Integer collect;

    //月销量
    @TableField(select = false)
    private Integer monthSales;

    @ApiModelProperty("页数")
    @TableField(select = false)
    private Integer pageNum;

    @ApiModelProperty("每页条数")
    @TableField(select = false)
    private Integer pageSize;
    /**
     * 商品价格
     */
    @ApiModelProperty("开始价格")
    @TableField(select = false)
    private BigDecimal priceStart;

    /**
     * 商品价格
     */
    @ApiModelProperty("结束价格")
    @TableField(exist = false)
    private BigDecimal priceEnd;
    /**
     * 盒子 id
     */
    @ApiModelProperty(" 盒子 id")
    @TableField(exist = false)
    private int boxId;

}
